Інформація про навчальний заклад

ВУЗ:
Інші
Інститут:
Не вказано
Факультет:
УІ
Кафедра:
Не вказано

Інформація про роботу

Рік:
2024
Тип роботи:
Задача
Предмет:
Структури даних та алгоритми

Частина тексту файла

Сосєдський Владислав, ТР-15 ПР-5_(25_05) ДИНАМІЧНІ СТРУКТУРИ ДАНИХ. АЛГОРИТМИ ОБРОБЛЕННЯ СТЕКУ. Завдання для виконання. 1. Розробити програму для опису “стеку” та обрати самостійно із списку два завдання. 2. Складіть текст програми (зазначені у завданні дії і вивести результати). 3. Створіть проект в інтегрованому середовищі розробки......(pract_№_призвище.cpp або pract_№_призвище.java). 4. Запустіть програму на виконання, проаналізуйте результати і переконайтеся в правильності рішення задачі. Завдання варіанту: / / / public class PR5 { public static class ArrayStack{ private Object[] S; private int t; public ArrayStack(int capacity){ S = new Object[capacity]; t = -1; } public int size(){ return t + 1; } public boolean isEmpty(){ return (t == -1); } public void push(Object obj){ if(t+1 < S.length) S[++t] = obj; } public Object pop(){ if(isEmpty()) return null; return S[t--]; } public Object peek(){ if(isEmpty()) return null; return S[t]; } public int search(Object obj){ int n = -1; if(isEmpty()) return -1; for(int i = 0;i < S.length;i++){ if(S[i].equals(obj)){ n = i; break; } } if(n == -1){ return -1; } return (S.length - n - 1); //return n; } } public static void main(String[] args) { System.out.println("Завдання 7. Видалити максимальний елемент"); int size = 20; ArrayStack s1 = new ArrayStack(size); int maxValue = 50; System.out.println("Стек:"); for(int i = 0;i < size;i++){ s1.push((int)(Math.random()*maxValue)); System.out.print(s1.peek() + " "); } int t = -1; while(t == -1){ maxValue--; t = s1.search(maxValue); } ArrayStack s1mem = new ArrayStack(t); for(int i = 0;i < t;i++){ s1mem.push(s1.pop()); } System.out.println("\nМаксимальне значення = " + s1.pop()); for(int i = 0;i < t;i++){ s1.push(s1mem.pop()); } ArrayStack s1out = new ArrayStack(size - 1); for(int i = 0;i < size - 1;i++){ s1out.push(s1.pop()); } System.out.println("Стек після видалення масимального елемента:"); for(int i = 0;i < size - 1;i++){ s1.push(s1out.pop()); System.out.print(s1.peek() + " "); } System.out.println("\nЗавдання 10. Знайти максимальний елемент “стека” і вставити після нього 0"); ArrayStack s2 = new ArrayStack(size); maxValue = 50; System.out.println("Стек:"); for(int i = 0;i < size;i++){ s2.push((int)(Math.random()*maxValue)); System.out.print(s2.peek() + " "); } t = -1; while(t == -1){ maxValue--; t = s2.search(maxValue); } ArrayStack s2mem = new ArrayStack(t); for(int i = 0;i < t;i++){ s2mem.push(s2.pop()); } System.out.println("\nМаксимальне значення = " + s2.peek()); s2.push(0); for(int i = 0;i < t;i++){ s2.push(s2mem.pop()); } ArrayStack s2out = new ArrayStack(size + 1); for(int i = 0;i < size;i++){ s2out.push(s2.pop()); } System.out.println("Стек після додавання 0:"); for(int i = 0;i < size + 1;i++){ s2.push(s2out.pop()); System.out.print(s2.peek() + " "); } } }
Антиботан аватар за замовчуванням

05.07.2023 22:07

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини